/*
一次只能跨1或者2个台阶，要登上n级台阶，一共有多少种不同的走法？
*/
#include<iostream>
#include<vector>
using namespace std;

// 计算有多少种不同的走法
int Count(int n)
{
	int a=1, b=2, c;
	
	// 只有一级台阶时，只有1种走法
	if(n==1)
		return a;
	
	// 有2级台阶时，有2种走法
	else if(n==2)
		return b;
	
	// 有多级台阶时，f(n) = f(n-2) + f(n-1)
	else
	{
		for(int i=3; i<=n; i++)
		{
			c = a+b;
			a = b;
			b = c;
		}
		return c;
	}
}

int main()
{
	// 遍历n
	for(int n=1; n<=10; n++)
		printf(" n=%d时: %d\n", n, Count(n)); // 计算有多少种不同的走法
	return 0;
}
